home *** CD-ROM | disk | FTP | other *** search
/ Computer Inter@ctive 17 / Computer Interactive cdrom 17 - gen 99.iso / ZDNETIT / CONTENT / OPTIVDOS.ZIP / INCLUDE.ZIP / VDMATH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-21  |  20.2 KB  |  379 lines

  1. /*  VDmath.h
  2.  
  3.   vector management functions:
  4.   math functions performed on each individual element of an
  5.   array or vector of the data type "double";   real numbers
  6.  
  7.   Copyright (c) 1996-1998 by Martin Sander
  8.   All Rights Reserved.
  9. */
  10.  
  11. #ifndef __VDMATH_H
  12. #define __VDMATH_H
  13.  
  14. #ifndef __VDSTD_H 
  15. #include <VDstd.h>
  16. #endif
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22.  
  23.  
  24. /**************************  Rounding **********************************/
  25.  
  26. int  __vf   VD_round(  dVector  Y, dVector X, ui size );
  27. int  __vf   VD_roundtoSI( siVector Y, dVector X, ui size );
  28. int  __vf   VD_roundtoI(  iVector  Y, dVector X, ui size );
  29. int  __vf   VD_roundtoLI( liVector Y, dVector X, ui size );
  30. int  __vf   VD_roundtoQI( qiVector Y, dVector X, ui size );
  31. int  __vf   VD_roundtoUS( usVector Y, dVector X, ui size );
  32. int  __vf   VD_roundtoU(  uVector  Y, dVector X, ui size );
  33. int  __vf   VD_roundtoUL( ulVector Y, dVector X, ui size );
  34.  
  35. int  __vf   VD_floor(  dVector  Y, dVector X, ui size );
  36. int  __vf   VD_floortoSI( siVector Y, dVector X, ui size );
  37. int  __vf   VD_floortoI(  iVector  Y, dVector X, ui size );
  38. int  __vf   VD_floortoLI( liVector Y, dVector X, ui size );
  39. int  __vf   VD_floortoQI( qiVector Y, dVector X, ui size );
  40. int  __vf   VD_floortoUS( usVector Y, dVector X, ui size );
  41. int  __vf   VD_floortoU(  uVector  Y, dVector X, ui size );
  42. int  __vf   VD_floortoUL( ulVector Y, dVector X, ui size );
  43.  
  44. int  __vf   VD_ceil(  dVector  Y, dVector X, ui size );
  45. int  __vf   VD_ceiltoSI( siVector Y, dVector X, ui size );
  46. int  __vf   VD_ceiltoI(  iVector  Y, dVector X, ui size );
  47. int  __vf   VD_ceiltoLI( liVector Y, dVector X, ui size );
  48. int  __vf   VD_ceiltoQI( qiVector Y, dVector X, ui size );
  49. int  __vf   VD_ceiltoUS( usVector Y, dVector X, ui size );
  50. int  __vf   VD_ceiltoU(  uVector  Y, dVector X, ui size );
  51. int  __vf   VD_ceiltoUL( ulVector Y, dVector X, ui size );
  52.  
  53. int  __vf   VD_chop(  dVector  Y, dVector X, ui size );
  54. int  __vf   VD_choptoSI( siVector Y, dVector X, ui size );
  55. int  __vf   VD_choptoI(  iVector  Y, dVector X, ui size );
  56. int  __vf   VD_choptoLI( liVector Y, dVector X, ui size );
  57. int  __vf   VD_choptoQI( qiVector Y, dVector X, ui size );
  58. int  __vf   VD_choptoUS( usVector Y, dVector X, ui size );
  59. int  __vf   VD_choptoU(  uVector  Y, dVector X, ui size );
  60. int  __vf   VD_choptoUL( ulVector Y, dVector X, ui size );
  61.  
  62. #define     VD_trunc      VD_chop
  63. #define     VD_trunctoSI  VD_choptoSI
  64. #define     VD_trunctoI   VD_choptoI
  65. #define     VD_trunctoLI  VD_choptoLI
  66. #define     VD_trunctoQI  VD_choptoQI
  67. #define     VD_trunctoUS  VD_choptoUS
  68. #define     VD_trunctoU   VD_choptoU
  69. #define     VD_trunctoUL  VD_choptoUL
  70.  
  71. #if defined V_HUGE
  72.       #define   VD_roundtoUI   VD_roundtoUL
  73.       #define   VD_floortoUI   VD_floortoUL
  74.       #define   VD_ceiltoUI    VD_ceiltoUL
  75.       #define   VD_choptoUI    VD_choptoUL
  76.       #define   VD_trunctoUI   VD_trunctoUL
  77. #else
  78.       #define   VD_roundtoUI   VD_roundtoU
  79.       #define   VD_floortoUI   VD_floortoU
  80.       #define   VD_ceiltoUI    VD_ceiltoU
  81.       #define   VD_choptoUI    VD_choptoU
  82.       #define   VD_trunctoUI   VD_trunctoU
  83. #endif
  84.  
  85. /************************  Comparisons   ***************************/
  86.  
  87. void __vf   VD_cmp0(    dVector Y, dVector X, ui size );
  88. ui   __vf   VD_cmp_eq0( dVector Y, dVector X, ui size );
  89. ui   __vf   VD_cmp_ne0( dVector Y, dVector X, ui size );
  90. ui   __vf   VD_cmp_le0( dVector Y, dVector X, ui size );
  91. ui   __vf   VD_cmp_lt0( dVector Y, dVector X, ui size );
  92. ui   __vf   VD_cmp_ge0( dVector Y, dVector X, ui size );
  93. ui   __vf   VD_cmp_gt0( dVector Y, dVector X, ui size );
  94.  
  95. ui   __vf   VD_cmp_eq0ind( uiVector Ind, dVector X, ui size );
  96. ui   __vf   VD_cmp_ne0ind( uiVector Ind, dVector X, ui size );
  97. ui   __vf   VD_cmp_le0ind( uiVector Ind, dVector X, ui size );
  98. ui   __vf   VD_cmp_lt0ind( uiVector Ind, dVector X, ui size );
  99. ui   __vf   VD_cmp_ge0ind( uiVector Ind, dVector X, ui size );
  100. ui   __vf   VD_cmp_gt0ind( uiVector Ind, dVector X, ui size );
  101.  
  102. void __vf   VD_cmpC(    dVector Y, dVector X, ui size, double C );
  103. ui   __vf   VD_cmp_eqC( dVector Y, dVector X, ui size, double C );
  104. ui   __vf   VD_cmp_neC( dVector Y, dVector X, ui size, double C );
  105. ui   __vf   VD_cmp_leC( dVector Y, dVector X, ui size, double C );
  106. ui   __vf   VD_cmp_ltC( dVector Y, dVector X, ui size, double C );
  107. ui   __vf   VD_cmp_geC( dVector Y, dVector X, ui size, double C );
  108. ui   __vf   VD_cmp_gtC( dVector Y, dVector X, ui size, double C );
  109.  
  110. ui   __vf   VD_cmp_eqCind( uiVector Ind, dVector X, ui size, double C );
  111. ui   __vf   VD_cmp_neCind( uiVector Ind, dVector X, ui size, double C );
  112. ui   __vf   VD_cmp_leCind( uiVector Ind, dVector X, ui size, double C );
  113. ui   __vf   VD_cmp_ltCind( uiVector Ind, dVector X, ui size, double C );
  114. ui   __vf   VD_cmp_geCind( uiVector Ind, dVector X, ui size, double C );
  115. ui   __vf   VD_cmp_gtCind( uiVector Ind, dVector X, ui size, double C );
  116.  
  117. void __vf   VD_cmpV(    dVector Z, dVector X, dVector Y, ui size );
  118. ui   __vf   VD_cmp_eqV( dVector Z, dVector X, dVector Y, ui size );
  119. ui   __vf   VD_cmp_neV( dVector Z, dVector X, dVector Y, ui size );
  120. ui   __vf   VD_cmp_leV( dVector Z, dVector X, dVector Y, ui size );
  121. ui   __vf   VD_cmp_ltV( dVector Z, dVector X, dVector Y, ui size );
  122. ui   __vf   VD_cmp_geV( dVector Z, dVector X, dVector Y, ui size );
  123. ui   __vf   VD_cmp_gtV( dVector Z, dVector X, dVector Y, ui size );
  124.  
  125. ui   __vf   VD_cmp_eqVind( uiVector Ind, dVector X, dVector Y, ui size );
  126. ui   __vf   VD_cmp_neVind( uiVector Ind, dVector X, dVector Y, ui size );
  127. ui   __vf   VD_cmp_leVind( uiVector Ind, dVector X, dVector Y, ui size );
  128. ui   __vf   VD_cmp_ltVind( uiVector Ind, dVector X, dVector Y, ui size );
  129. ui   __vf   VD_cmp_geVind( uiVector Ind, dVector X, dVector Y, ui size );
  130. ui   __vf   VD_cmp_gtVind( uiVector Ind, dVector X, dVector Y, ui size );
  131.  
  132.  
  133. /********************  Standard Arithmetics   ***************************/
  134.  
  135. void  __vf  VD_equC( dVector X, ui size, double C );
  136. void  __vf  VD_equV( dVector Y, dVector X, ui size );
  137. void  __vf  VDx_equV( dVector Y, dVector X, ui size, double A, double B );
  138.  
  139. void  __vf  VD_addC(  dVector Y, dVector X, ui size, double C );
  140. void  __vf  VD_subC(  dVector Y, dVector X, ui size, double C );
  141. void  __vf  VD_subrC( dVector Y, dVector X, ui size, double C );
  142. void  __vf  VD_mulC(  dVector Y, dVector X, ui size, double C );
  143. void  __vf  VD_divC(  dVector Y, dVector X, ui size, double C );
  144. void  __vf  VD_divrC( dVector Y, dVector X, ui size, double C );
  145. void  __vf  VDx_divrC( dVector Y, dVector X, ui size, double A, double B, double C );
  146.  
  147. void  __vf  VD_addV(  dVector Z, dVector X, dVector Y, ui size );
  148. void  __vf  VD_subV(  dVector Z, dVector X, dVector Y, ui size );
  149. void  __vf  VD_subrV( dVector Z, dVector X, dVector Y, ui size );
  150. void  __vf  VD_mulV(  dVector Z, dVector X, dVector Y, ui size );
  151. void  __vf  VD_divV(  dVector Z, dVector X, dVector Y, ui size );
  152. void  __vf  VD_divrV( dVector Z, dVector X, dVector Y, ui size );
  153.  
  154. void  __vf  VDx_addV(  dVector Z, dVector X, dVector Y, ui size, double A, double B );
  155.                                   /* Z = (A*X+B) + Y */
  156. void  __vf  VDx_subV(  dVector Z, dVector X, dVector Y, ui size, double A, double B );
  157. void  __vf  VDx_subrV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  158. void  __vf  VDx_mulV(  dVector Z, dVector X, dVector Y, ui size, double A, double B );
  159. void  __vf  VDx_divV(  dVector Z, dVector X, dVector Y, ui size, double A, double B );
  160. void  __vf  VDx_divrV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  161.  
  162. void  __vf  VDs_addV( dVector Z, dVector X, dVector Y, ui size, double C ); /* Z=C*(X+Y) */
  163. void  __vf  VDs_subV( dVector Z, dVector X, dVector Y, ui size, double C );
  164. void  __vf  VDs_mulV( dVector Z, dVector X, dVector Y, ui size, double C );
  165. void  __vf  VDs_divV( dVector Z, dVector X, dVector Y, ui size, double C );
  166.  
  167. void  __vf  VD_maxC(   dVector Y, dVector X, ui size, double C );
  168. void  __vf  VD_minC(   dVector Y, dVector X, ui size, double C );
  169. void  __vf  VD_limit(  dVector Y, dVector X, ui size, double Min, double Max );
  170. void  __vf  VD_flush0( dVector Y, dVector X, ui size, double AbsMin );
  171. void  __vf  VD_maxV(   dVector Z, dVector X, dVector Y, ui size );
  172. void  __vf  VD_minV(   dVector Z, dVector X, dVector Y, ui size );
  173. void  __vf  VD_modC(   dVector Y, dVector X, ui size, double C );
  174. void  __vf  VD_modV(   dVector Z, dVector X, dVector Y, ui size );
  175. void  __vf  VDx_modV(  dVector Z, dVector X, dVector Y, ui size, double A, double B );
  176. #define     VD_fmodC    VD_modC
  177. #define     VD_fmodV    VD_modV
  178. #define     VDx_fmodV   VDx_modV
  179.  
  180. void __vf  VD_redC(  dVector Y, dVector X, ui size, double C );
  181. void __vf  VD_redV(  dVector Z, dVector X, dVector Y, ui size );
  182. void __vf  VDx_redV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  183. void __vf  VD_visC(  dVector Y, dVector X, ui size, double C );
  184. void __vf  VD_visV(  dVector Z, dVector X, dVector Y, ui size );
  185. void __vf  VDx_visV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  186. void __vf  VD_hypC(  dVector Y, dVector X, ui size, double C );
  187. void __vf  VD_hypV(  dVector Z, dVector X, dVector Y, ui size );
  188. void __vf  VDx_hypV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  189.  
  190. void __vf VD_lincomb( dVector Z, dVector X, dVector Y, ui size,
  191.                       double CX, double CY );  /* Z[i]=CX*X[i]+CY*Y[i] */
  192. #define    VD_sgn    VD_cmp0
  193.  
  194. /***************** Functions of a sub-set of elements  ********************/
  195.  
  196. void  __vf  VD_subvector_equC(  dVector Y, ui subsiz, unsigned samp, double C );
  197. void  __vf  VD_subvector_equV(  dVector Y, ui subsiz, unsigned samp, dVector X );
  198.  
  199. void  __vf  VD_subvector_addC(  dVector Y, ui subsiz, unsigned samp, double C );
  200. void  __vf  VD_subvector_subC(  dVector Y, ui subsiz, unsigned samp, double C );
  201. void  __vf  VD_subvector_subrC( dVector Y, ui subsiz, unsigned samp, double C );
  202. void  __vf  VD_subvector_mulC(  dVector Y, ui subsiz, unsigned samp, double C );
  203. void  __vf  VD_subvector_divC(  dVector Y, ui subsiz, unsigned samp, double C );
  204. void  __vf  VD_subvector_divrC( dVector Y, ui subsiz, unsigned samp, double C );
  205.  
  206. void  __vf  VD_subvector_addV(  dVector Y, ui subsiz, unsigned samp, dVector X );
  207. void  __vf  VD_subvector_subV(  dVector Y, ui subsiz, unsigned samp, dVector X );
  208. void  __vf  VD_subvector_subrV( dVector Y, ui subsiz, unsigned samp, dVector X );
  209. void  __vf  VD_subvector_mulV(  dVector Y, ui subsiz, unsigned samp, dVector X );
  210. void  __vf  VD_subvector_divV(  dVector Y, ui subsiz, unsigned samp, dVector X );
  211. void  __vf  VD_subvector_divrV( dVector Y, ui subsiz, unsigned samp, dVector X );
  212.  
  213.  
  214. /********************  Mathematical Functions **************************/
  215.  
  216. int   __vf   VD_abs( dVector Y, dVector X, ui size );
  217. int   __vf   VD_neg( dVector Y, dVector X, ui size );
  218. int   __vf   VD_inv( dVector Y, dVector X, ui size );
  219. int   __vf   VDx_inv( dVector Y, dVector X, ui size, double A, double B );
  220. int   __vf   VD_intfrac( dVector Int, dVector Frac, dVector X, ui size );
  221. #define      VD_modf    VD_intfrac
  222. int   __vf   VD_mantexp( dVector Mant, iVector Exp, dVector X, ui size );
  223. #define      VD_frexp   VD_mantexp
  224.  
  225. int  __vf    VD_hypotC( dVector Y, dVector X, ui size, double C );
  226. int  __vf    VD_hypotV( dVector Z, dVector X, dVector Y, ui size );
  227. int  __vf    VDx_hypotV( dVector Z, dVector X, dVector Y, ui size, double A, double B );
  228.  
  229. int  __vf    VD_scale2( dVector Y, dVector X, ui size, int expo );
  230. int  __vf    VD_scale10( dVector Y, dVector X, ui size, int expo );
  231. #define      VD_ldexp    VD_scale2
  232.  
  233. int  __vf    VD_square( dVector Y, dVector X, ui size );
  234. int  __vf    VDx_square( dVector Y, dVector X, ui size, double A, double B );
  235. int  __vf    VD_cubic( dVector Y, dVector X, ui size );
  236. int  __vf    VDx_cubic( dVector Y, dVector X, ui size, double A, double B );
  237. int  __vf    VD_quartic( dVector Y, dVector X, ui size );
  238. int  __vf    VDx_quartic( dVector Y, dVector X, ui size, double A, double B );
  239. int  __vf    VD_poly( dVector Y, dVector X, ui size, dVector Coeff, unsigned deg );
  240. int  __vf    VDx_poly( dVector Y, dVector X, ui size, dVector Coeff, unsigned deg, double A, double B );
  241. int  __vf    VD_ipow( dVector Y, dVector X, ui size, int ipow );
  242. int  __vf    VDx_ipow( dVector Y, dVector X, ui size, int ipow, double A, double B, double C );
  243.                           /* ipow: integer powers of x */
  244. int  __vf    VD_ipow2(  dVector Y, iVector X, ui size );
  245. int  __vf    VD_ipow10( dVector Y, iVector X, ui size );
  246.                           /* ipow2 and ipow10: integer powers of 2 and 10 */
  247.  
  248. int  __vf   VD_pow(    dVector Y, dVector X, ui size, double expo );
  249. int  __vf   VDx_pow(   dVector Y, dVector X, ui size, double expo, double A, double B, double C );
  250. int  __vf   VD_pow2(   dVector Y, dVector X, ui size );
  251. int  __vf   VDx_pow2(  dVector Y, dVector X, ui size, double A, double B, double C );
  252. int  __vf   VD_pow10(  dVector Y, dVector X, ui size );
  253. int  __vf   VDx_pow10( dVector Y, dVector X, ui size, double A, double B, double C );
  254.                           /* pow2 and pow10: basis 2 or 10 raised to power x */
  255.  
  256. int  __vf   VD_sqrt(  dVector Y, dVector X, ui size );
  257. int  __vf   VDx_sqrt( dVector Y, dVector X, ui size, double A, double B, double C );
  258.  
  259. int  __vf   VD_log(    dVector Y, dVector X, ui size );
  260. int  __vf   VD_log2(   dVector Y, dVector X, ui size );
  261. int  __vf   VD_log10(  dVector Y, dVector X, ui size );
  262. #define     VD_ln    VD_log
  263. int  __vf   VDx_log(   dVector Y, dVector X, ui size, double A, double B, double C );
  264. int  __vf   VDx_log2(  dVector Y, dVector X, ui size, double A, double B, double C );
  265. int  __vf   VDx_log10( dVector Y, dVector X, ui size, double A, double B, double C );
  266. #define     VDx_ln   VDx_log
  267.  
  268. int  __vf   VD_exp(   dVector Y, dVector X, ui size );
  269. int  __vf   VDx_exp(  dVector Y, dVector X, ui size, double A, double B, double C );
  270. int  __vf   VD_expArbBase(  dVector Y, dVector X, ui size, double Base );
  271. int  __vf   VDx_expArbBase( dVector Y, dVector X, ui size, double Base,
  272.                             double A, double B, double C );
  273. int  __vf   VD_expc(  dVector Y, dVector X, ui size );
  274. int  __vf   VDx_expc( dVector Y, dVector X, ui size, double A, double B, double C );
  275.                          /* expc(x) = 1 - exp(x) */
  276. int  __vf   VD_exp2(  dVector Y, dVector X, ui size );
  277. int  __vf   VDx_exp2( dVector Y, dVector X, ui size, double A, double B, double C );
  278. int  __vf   VD_exp10(  dVector Y, dVector X, ui size );
  279. int  __vf   VDx_exp10( dVector Y, dVector X, ui size, double A, double B, double C );
  280.                        /* exp2 and exp10 used as synonyms for pow2 and pow10 */
  281. int  __vf   VD_expmx2(  dVector Y, dVector X, ui size );
  282. int  __vf   VDx_expmx2( dVector Y, dVector X, ui size, double A, double B, double C );
  283.                         /* expmx2(x) = exp( -x**2 ) */
  284.  
  285. int  __vf   VD_Gauss(   dVector Y, dVector X, ui size, double Wid, double Cent, double C );
  286. int  __vf   VD_Lorentz( dVector Y, dVector X, ui size, double Wid, double Cent, double C );
  287.  
  288. int  __vf   VD_sin(     dVector Y, dVector X, ui size );
  289. int  __vf   VDx_sin(    dVector Y, dVector X, ui size, double A, double B, double C );
  290. int  __vf   VD_cos(     dVector Y, dVector X, ui size );
  291. int  __vf   VDx_cos(    dVector Y, dVector X, ui size, double A, double B, double C );
  292. int  __vf   VD_sincos(  dVector Sin, dVector Cos, dVector X, ui size );
  293. int  __vf   VDx_sincos( dVector Sin, dVector Cos, dVector X, ui size, double A, double B, double C );
  294.  
  295. int  __vf   VD_tan(     dVector Y, dVector X, ui size );
  296. int  __vf   VDx_tan(    dVector Y, dVector X, ui size, double A, double B, double C );
  297. int  __vf   VD_cot(     dVector Y, dVector X, ui size );
  298. int  __vf   VDx_cot(    dVector Y, dVector X, ui size, double A, double B, double C );
  299.  
  300. int  __vf   VD_sec(     dVector Y, dVector X, ui size );
  301. int  __vf   VDx_sec(    dVector Y, dVector X, ui size, double A, double B, double C );
  302. int  __vf   VD_cosec(   dVector Y, dVector X, ui size );
  303. int  __vf   VDx_cosec(  dVector Y, dVector X, ui size, double A, double B, double C );
  304.  
  305. int  __vf   VD_sin2(    dVector Y, dVector X, ui size );
  306. int  __vf   VDx_sin2(   dVector Y, dVector X, ui size, double A, double B, double C );
  307. int  __vf   VD_cos2(    dVector Y, dVector X, ui size );
  308. int  __vf   VDx_cos2(   dVector Y, dVector X, ui size, double A, double B, double C );
  309. int  __vf   VD_sincos2( dVector Sin, dVector Cos, dVector X, ui size );
  310. int  __vf   VDx_sincos2( dVector Sin, dVector Cos, dVector X, ui size, double A, double B, double C );
  311.  
  312. int  __vf   VD_tan2(     dVector Y, dVector X, ui size );
  313. int  __vf   VDx_tan2(    dVector Y, dVector X, ui size, double A, double B, double C );
  314. int  __vf   VD_cot2(     dVector Y, dVector X, ui size );
  315. int  __vf   VDx_cot2(    dVector Y, dVector X, ui size, double A, double B, double C );
  316. int  __vf   VD_sec2(     dVector Y, dVector X, ui size );
  317. int  __vf   VDx_sec2(    dVector Y, dVector X, ui size, double A, double B, double C );
  318. int  __vf   VD_cosec2(   dVector Y, dVector X, ui size );
  319. int  __vf   VDx_cosec2(  dVector Y, dVector X, ui size, double A, double B, double C );
  320.  
  321. int  __vf   VD_sinrpi(   dVector Y, iVector P, ui size, int q );
  322. int  __vf   VD_cosrpi(   dVector Y, iVector P, ui size, int q );
  323. int  __vf   VD_sincosrpi( dVector Sin, dVector Cos, iVector P, ui size, int q );
  324. int  __vf   VD_tanrpi(   dVector Y, iVector P, ui size, int q );
  325. int  __vf   VD_cotrpi(   dVector Y, iVector P, ui size, int q );
  326. int  __vf   VD_secrpi(   dVector Y, iVector P, ui size, int q );
  327. int  __vf   VD_cosecrpi( dVector Y, iVector P, ui size, int q );
  328.  
  329. int  __vf   VD_sinrpi2(  dVector Y, iVector P, ui size, int q );
  330. int  __vf   VD_cosrpi2(  dVector Y, iVector P, ui size, int q );
  331. int  __vf   VD_sincosrpi2( dVector Sin, dVector Cos, iVector P, ui size, int q );
  332. int  __vf   VD_tanrpi2(  dVector Y, iVector P, ui size, int q );
  333. int  __vf   VD_cotrpi2(  dVector Y, iVector P, ui size, int q );
  334. int  __vf   VD_secrpi2(  dVector Y, iVector P, ui size, int q );
  335. int  __vf   VD_cosecrpi2( dVector Y, iVector P, ui size, int q );
  336.  
  337. int  __vf   VD_sinrpi3(  dVector Y, iVector P, ui size, int q );
  338. int  __vf   VD_cosrpi3(  dVector Y, iVector P, ui size, int q );
  339. int  __vf   VD_sincosrpi3( dVector Sin, dVector Cos, iVector P, ui size, int q );
  340. int  __vf   VD_tanrpi3(  dVector Y, iVector P, ui size, int q );
  341. int  __vf   VD_cotrpi3(  dVector Y, iVector P, ui size, int q );
  342. int  __vf   VD_secrpi3(  dVector Y, iVector P, ui size, int q );
  343. int  __vf   VD_cosecrpi3( dVector Y, iVector P, ui size, int q );
  344.  
  345. int  __vf   VD_sinc(     dVector Y, dVector X, ui size );
  346. int  __vf   VDx_sinc(    dVector Y, dVector X, ui size, double A, double B, double C );
  347.  
  348. int  __vf   VD_asin(    dVector Y, dVector X, ui size );
  349. int  __vf   VDx_asin(   dVector Y, dVector X, ui size, double A, double B, double C );
  350. int  __vf   VD_acos(    dVector Y, dVector X, ui size );
  351. int  __vf   VDx_acos(   dVector Y, dVector X, ui size, double A, double B, double C );
  352. int  __vf   VD_atan(    dVector Y, dVector X, ui size );
  353. int  __vf   VDx_atan(   dVector Y, dVector X, ui size, double A, double B, double C );
  354. int  __vf   VD_atan2(   dVector Z, dVector X, dVector Y, ui size );
  355. int  __vf   VDx_atan2(  dVector Z, dVector X, dVector Y, ui size, double A, double B, double C );
  356.  
  357. int  __vf   VD_sinh(    dVector Y, dVector X, ui size );
  358. int  __vf   VDx_sinh(   dVector Y, dVector X, ui size, double A, double B, double C );
  359. int  __vf   VD_cosh(    dVector Y, dVector X, ui size );
  360. int  __vf   VDx_cosh(   dVector Y, dVector X, ui size, double A, double B, double C );
  361. int  __vf   VD_tanh(    dVector Y, dVector X, ui size );
  362. int  __vf   VDx_tanh(   dVector Y, dVector X, ui size, double A, double B, double C );
  363. int  __vf   VD_coth(    dVector Y, dVector X, ui size );
  364. int  __vf   VDx_coth(   dVector Y, dVector X, ui size, double A, double B, double C );
  365. int  __vf   VD_sech(    dVector Y, dVector X, ui size );
  366. int  __vf   VDx_sech(   dVector Y, dVector X, ui size, double A, double B, double C );
  367. int  __vf   VD_cosech(  dVector Y, dVector X, ui size );
  368. int  __vf   VDx_cosech( dVector Y, dVector X, ui size, double A, double B, double C );
  369. int  __vf   VD_sech2(   dVector Y, dVector X, ui size );
  370. int  __vf   VDx_sech2(  dVector Y, dVector X, ui size, double A, double B, double C );
  371.  
  372.  
  373. #ifdef __cplusplus
  374. }
  375. #endif
  376.  
  377.  
  378. #endif /* __VDMATH_H */
  379.